package com.settlement.system.model.entity.common;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
 * 优购-支付宝账单明细
 * @author Ximi
 * @since 2020-07-09
 */
@Data
@ExcelIgnoreUnannotated
@HeadStyle(fillBackgroundColor = 9,fillForegroundColor = 9)
@HeadRowHeight(value = 20)
@HeadFontStyle(fontHeightInPoints = 14)
public class TblYgAlipayBillDetail extends BaseModel implements Serializable {


    /**
     * 天猫店铺编码
     */
    @ExcelProperty(value = "天猫店铺账号")
    @ApiModelProperty(value = "天猫店铺账号")
    private String tmShopNumber;

    /**
     * 店铺编码
     */
    @ExcelProperty(value = "店铺编码")
    @ApiModelProperty(value = "店铺编码",required = true)
    @NotNull(message = "店铺编码不能为空")
    private String shopNo;

    /**
     * 店铺名称
     */
    @ExcelProperty(value = "店铺名称")
    @ApiModelProperty(value = "店铺名称")
    private String shopName;

    /**
     * 财务流水号
     */
    @ExcelProperty(value = "财务流水号")
    @ApiModelProperty(value = "财务流水号",required = true)
    @NotNull(message = "财务流水号不能为空")
    private String accountSerialNo;

    /**
     * 业务流水号
     */
    @ExcelProperty(value = "业务流水号")
    @ApiModelProperty(value = "业务流水号")
    private String businessSerialNo;

    /**
     * 商户订单号
     */
    @ExcelProperty(value = "商户订单号")
    @ApiModelProperty(value = "商户订单号")
    private String vendorOrderNo;

    /**
     * 商品名称
     */
    @ExcelProperty(value = "商品名称")
    @ApiModelProperty(value = "商品名称")
    private String itemName;

    /**
     * 发生时间
     */
    @ExcelProperty(value = "发生时间")
    @ApiModelProperty(value = "发生时间")
    @JsonFormat(pattern="yyyy/MM/dd HH:mm:ss",timezone = "GMT+8")
    private Date happenTime;

    /**
     * 对方账号
     */
    @ExcelProperty(value = "对方账号")
    @ApiModelProperty(value = "对方账号")
    private String oppositeAccountNumber;

    /**
     * 收入金额
     */
    @ExcelProperty(value = "收入金额")
    @ApiModelProperty(value = "收入金额",required = true)
    @NotNull(message = "收入金额不能为空")
    private BigDecimal incomeAmount;

    /**
     * 支出金额
     */
    @ExcelProperty(value = "支出金额")
    @ApiModelProperty(value = "支出金额",required = true)
    @NotNull(message = "支出金额不能为空")
    private BigDecimal expendAmount;

    /**
     * 账户余额（元）
     */
    @ExcelProperty(value = "账户余额（元）")
    @ApiModelProperty(value = "账户余额（元）",required = true)
    @NotNull(message = "账户余额（元）")
    private BigDecimal accountRemainAmount;

    /**
     * 交易渠道
     */
    @ExcelProperty(value = "交易渠道")
    @ApiModelProperty(value = "交易渠道")
    private String dealChannel;

    /**
     * 业务类型
     */
    @ExcelProperty(value = "业务类型")
    @ApiModelProperty(value = "业务类型")
    private String businessType;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 业务描述
     */
    @ExcelProperty(value = "业务描述")
    @ApiModelProperty(value = "业务描述",required = true)
    @NotNull(message = "业务描述")
    private String businessDesc;

    /**
     * 业务账单来源
     */
    @ExcelProperty(value = "业务账单来源")
    @ApiModelProperty(value = "业务账单来源")
    private String businessBillSource;

    /**
     * 业务基础订单号
     */
    @ExcelProperty(value = "业务基础订单号")
    @ApiModelProperty(value = "业务基础订单号")
    private String businessBasicOrderNo;

    /**
     * 业务订单号
     */
    @ExcelProperty(value = "业务订单号")
    @ApiModelProperty(value = "业务订单号")
    private String businessOrderNo;

    /**
     * 线下打款账号
     */
    @ExcelProperty(value = "线下打款账号")
    @ApiModelProperty(value = "线下打款账号")
    private String shopAccount;

    public String getShopAccount() {
        return shopAccount;
    }

    public void setShopAccount(String shopAccount) {
        this.shopAccount = shopAccount;
    }

    public String getTmShopNumber() {
        return tmShopNumber;
    }

    public void setTmShopNumber(String tmShopNumber) {
        this.tmShopNumber = tmShopNumber;
    }

    public String getShopNo() {
        return shopNo;
    }

    public void setShopNo(String shopNo) {
        this.shopNo = shopNo;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public String getAccountSerialNo() {
        return accountSerialNo;
    }

    public void setAccountSerialNo(String accountSerialNo) {
        this.accountSerialNo = accountSerialNo;
    }

    public String getBusinessSerialNo() {
        return businessSerialNo;
    }

    public void setBusinessSerialNo(String businessSerialNo) {
        this.businessSerialNo = businessSerialNo;
    }

    public String getVendorOrderNo() {
        return vendorOrderNo;
    }

    public void setVendorOrderNo(String vendorOrderNo) {
        this.vendorOrderNo = vendorOrderNo;
    }

    public String getItemName() {
        return itemName;
    }

    public void setItemName(String itemName) {
        this.itemName = itemName;
    }

    public Date getHappenTime() {
        return happenTime;
    }

    public void setHappenTime(Date happenTime) {
        this.happenTime = happenTime;
    }

    public String getOppositeAccountNumber() {
        return oppositeAccountNumber;
    }

    public void setOppositeAccountNumber(String oppositeAccountNumber) {
        this.oppositeAccountNumber = oppositeAccountNumber;
    }

    public BigDecimal getIncomeAmount() {
        return incomeAmount;
    }

    public void setIncomeAmount(BigDecimal incomeAmount) {
        this.incomeAmount = incomeAmount;
    }

    public BigDecimal getExpendAmount() {
        return expendAmount;
    }

    public void setExpendAmount(BigDecimal expendAmount) {
        this.expendAmount = expendAmount;
    }

    public BigDecimal getAccountRemainAmount() {
        return accountRemainAmount;
    }

    public void setAccountRemainAmount(BigDecimal accountRemainAmount) {
        this.accountRemainAmount = accountRemainAmount;
    }

    public String getDealChannel() {
        return dealChannel;
    }

    public void setDealChannel(String dealChannel) {
        this.dealChannel = dealChannel;
    }

    public String getBusinessType() {
        return businessType;
    }

    public void setBusinessType(String businessType) {
        this.businessType = businessType;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getBusinessDesc() {
        return businessDesc;
    }

    public void setBusinessDesc(String businessDesc) {
        this.businessDesc = businessDesc;
    }

    public String getBusinessBillSource() {
        return businessBillSource;
    }

    public void setBusinessBillSource(String businessBillSource) {
        this.businessBillSource = businessBillSource;
    }

    public String getBusinessBasicOrderNo() {
        return businessBasicOrderNo;
    }

    public void setBusinessBasicOrderNo(String businessBasicOrderNo) {
        this.businessBasicOrderNo = businessBasicOrderNo;
    }

    public String getBusinessOrderNo() {
        return businessOrderNo;
    }

    public void setBusinessOrderNo(String businessOrderNo) {
        this.businessOrderNo = businessOrderNo;
    }

}
